/**
 * Copyright  (c) 2009-2013 XLab,  Org. 
 * All  rights  reserved. 
 */
package org.xlab.baseframework.domain.view;

import org.springframework.beans.BeanUtils;
import org.xlab.baseframework.domain.AbstractNormalDomainObject;
import org.xlab.baseframework.domain.ILogicalRemoveSupportedDomain;
import org.xlab.baseframework.domain.INormalDomain;
import org.xlab.baseframework.domain.enumerate.EnumDeletedIndentifying;


/**
 * 支持逻辑删除视图实体类的一个抽象实现,一般支持逻辑删除的视图实体可以集成该类
 * 
 * @author MaKuBEX Email:makubexnet@gmail.com
 * @version 1.0.0 Sep 7, 2010
 * @since 1.0.0
 * 
 */
public abstract class AbstractLogicalViewObject<T extends INormalDomain>
		extends AbstractNormalDomainObject implements IViewDomainObject<T>,
		INormalDomain, ILogicalRemoveSupportedDomain {

	/**
	 * @serialField
	 */
	private static final long serialVersionUID = 6455775420898602426L;

	protected EnumDeletedIndentifying deletedInd;

	/**
	 * 空构造函数
	 */
	public AbstractLogicalViewObject() {
		super();
	}

	/**
	 * 默认构造函数
	 * 
	 * @param pojo
	 *            普通实体对象
	 */
	public AbstractLogicalViewObject(T pojo) {
		BeanUtils.copyProperties(pojo, this);
	}

	/**
	 * @return the deletedInd
	 */
	public EnumDeletedIndentifying getDeletedInd() {
		return deletedInd;
	}

	/**
	 * @param deletedInd
	 *            the deletedInd to set
	 */
	public void setDeletedInd(EnumDeletedIndentifying deletedInd) {
		this.deletedInd = deletedInd;
	}
}
